7
תגובות
היי.
אני לא בטוח בעצמי ורציתי לשאול שאלה, ע"פ מה שקראתי הבנתי שבשום פנים ואופן לא לסמוך על המשתמש ולקלוט ממנו מידע שאיתו אני ישתמש במערכת. לפי מה שאני הבנתי זה דבר כזה:

דוגמא של מערכת משתמשים: אני מציג למשתמש את הפרטים שלו ע"י שליפה מהמסד, השליפה שולפת את השורה כאשר ה$_GET['id'] שווה לid של המשתמש במסד. ה$_GET זה משהו שאני קולט מהמשתמש ולפי מה שהבנתי אין לסמוך על זה ולהשתמש בזה. אז פשוט, איך אוכל להציג למשתמש את פרטיו מבלי לאפשר חורי פריצה במערכת או פגיעה כזו או אחרת במערכת.

id הוא מספרי, אני תיארתי לעצמי להעביר בדיקה על הget ולסנן אותו מכל התווים שהם אינם מספרים כך שאני נשאר עם הid. אני לא יודע מה הכי מועיל ומה הכי נכון לעשות כי באמת לא הבנתי כ"כ מה הדרך הכי טובה ובטוחה להציג למשתמש את פרטיו מבלי ליצור חור דרך ה get.

אשמח להסבר מורחב בנושא הזה, כי שאלתי כמה אנשים בפורומים שונים וההסברים היו לא ברורים או פשוט סתם דברים לא קשורים. תודה :).

7 תשובות

avatar ענה shlomo120 ב 01 לפברואר 2013 #

להשתמש בפונקציה intval .

avatar ענה ArielTador ב 01 לפברואר 2013 #

שלום לך,

כיום יש כמה פונקציות טובות שאתם אפשר להשתמש כדי למנוע חורי אבטחה באתר, בעט שליפה מ Get.
למשל, במידה ויש לך שליפה של טקסט, אתה יכול להשתמש ב "mysql_real_escape_string",
אבל במקרה שלך, זה שליפה של מספרים בלבד, ולכן אני ממליץ להשתמש ב intval כמו שאמר שלמה בתגובה לפני.

בהצלחה (:

avatar ענה intval ב 01 לפברואר 2013 #

בנוסף אני מאוד ממליץ לקרוא את המדריך על sql injection באתר כדי להבין מה בכלל גורם לקלט להיו פאום לא מאובטח
ואיך זה יכול לפגוע בך.

avatar ענה Ben ב 01 לפברואר 2013 #

הבנתי פחות או יותר, אני משתמש בintval, ראיתי שיש עוד כמה פונקציות שעובדות עם מספרים, intval הכי טובה מבן כל השאר שקיימים?. ואם לדוגמא המשתמש כותב במקום המספר אותיות או סימנים - הintval לא מסנן אותם-במה משתמשים במצב כזה?

בנוסף, בקישורים אם הגולש משנה את הקישור ומשחק איתו וכותב תווים ודברים כאלה, זה מעביר אותו לדף שגיאה 404.
הכל עובד כמו שצריך פרט לסימן אחוז וכוכבית (*,%). רק שיש % \ * בכתובת, ולא משנה איפה הוא נמצא זה מעביר לדף שגיאה 400. איך אוכל לשנות את זה לדף שגיאה 404 ?

avatar ענה Ben ב 02 לפברואר 2013 #

אשמח לקבל עזרה.

avatar ענה Ben ב 04 לפברואר 2013 #

אשמח אם תענו לי.

avatar ענה intval ב 04 לפברואר 2013 #

הדף שגיאה שלך ממש לא קשור לנושא האשכול.
שאל שאלה חדשה ותצרף לשם את המידע הנחוץ, כמו קובץ ה htaccess שלך וקוד של עמוד 404.
בקשר לפונקציה intval - תלחץ על הקישור phplive למעלה, תכניס בקוד את קריאה לפונקציה עם כל ערך שתרצה ותראה מה היא מחזירה.